﻿#region 基本信息

/*
 * 作者：王玉才 (Wang Yucai)
 * 创建日期：2015-03-05 11:55:15
 * 电子邮件：SourceProStudio@outlook.com 或者 MasterDuner@yeah.net
 * 开发工具：Microsoft VisualStudio 2013 Ultimate Edition
 * 
 * 公共语言运行时(CLR)版本：4.0.30319.18444
 * 适用的.NET Framework SDK版本：4.0及其以上版本
 * 
 * 机器名：GLCHQWYCWINW7
 * 用户名：GUOCOLAND\wangyucai
 */

#endregion


using System;
using System.Diagnostics;
using System.Windows.Forms;


namespace DeluxeSources.Practices
{
    /// <summary>
    /// <para>
    /// 命名空间：<see cref="DeluxeSources.Practices"/>
    /// </para>
    /// <para>
    /// 类型名称：<see cref="ViewLogTraceListener"/>
    /// </para>
    /// <para>
    /// 此类型(<see cref="ViewLogTraceListener"/>)仅适用于4.0及其以上版本的.NET Framework SDK。
    /// </para>
    /// <para>
    /// 此类型是密闭的，不可以从此类型继承。
    /// </para>
    /// <para>
    /// © 2015 Wang Yucai.
    /// </para>
    /// </summary>
    /// <remarks>
    /// 此类型是密闭的，不可以从此类型继承。
    /// </remarks>
    public sealed class ViewLogTraceListener : TraceListener
    {
        private RichTextBox _displayControl;

        #region DisplayControl
        /// <summary>
        /// 用于显示日志内容的<see cref="RichTextBox"/>控件。
        /// </summary>
        public RichTextBox DisplayControl
        {
            get { return _displayControl; }
            set { _displayControl = value; }
        }
        #endregion

        #region 构造函数

        /// <summary>
        /// <para>
        /// <see cref="ViewLogTraceListener"/>的构造函数：
        /// </para>
        /// <para>
        /// 用于初始化一个<see cref="ViewLogTraceListener"/>类型的对象实例。
        /// </para>
        /// <para>
        /// 此类型是密闭的，不可以从此类型继承。
        /// </para>
        /// </summary>
        public ViewLogTraceListener()
        {
        }

        #endregion

        #region Write
        /// <summary>
        /// 输出日志消息。
        /// </summary>
        /// <param name="message">日志消息。</param>
        public override void Write(string message)
        {
            this.DisplayControl.AppendText(string.Format("{0}{1}{1}", message, Environment.NewLine));
        }
        #endregion

        #region WriteLine
        /// <summary>
        /// 输出日志消息。
        /// </summary>
        /// <param name="message">日志消息。</param>
        public override void WriteLine(string message)
        {
            this.Write(message);
        }
        #endregion
    }
}

#region 版权声明

/*
 * Copyright © 2015 Wang Yucai. All rights reserved.
 */

#endregion